home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Utilities / Unix / satan-1.1.1 / bin / rpc.satan < prev    next >
Text File  |  1996-04-24  |  2KB  |  79 lines

  1. #!/usr/local/bin/perl
  2. #
  3. #  Does an "rpcinfo -p" on a machine, tries to determine anything interesting
  4. # running there.
  5. #
  6. #  TODO -- verify args
  7. #
  8. # version 1, Mon Mar 20 21:05:44 1995, last mod by wietse
  9. #
  10. require 'config/paths.pl';
  11. require 'perl/misc.pl';
  12.  
  13. die "usage: $0 target" unless ($#ARGV == 0);
  14.  
  15. # fields for satan...
  16. $severity="x";
  17. $status="a";
  18.  
  19. $target = $ARGV[0];
  20.  
  21. open(RPC, "$RPCINFO -p $target|");
  22.  
  23. while (<RPC>) {
  24.     chop;
  25.     ($prog, $vers, $proto, $port, $name) = split;
  26.     if ($name eq "rexd" || $prog == 100017)        { $rexd = 1; }
  27.     if ($name eq "arm")                { $arm = 1; }
  28.     if ($name eq "bootparam" || $prog == 100026)    { $bootparamd = 1; }
  29.     if ($name eq "ypserv" || $prog == 100004)    { $ypserv = 1; }
  30.     if ($name eq "ypbind" || $prog == 100007)    { $ypbind = 1; }
  31.     if ($name eq "selection_svc" || $prog == 100015){ $s_svc = 1; }
  32.     if ($name eq "nfs" || $prog == 100003)        { $nfs = 1; }
  33.     if ($name eq "mountd" || $prog == 100005)    { $mountd = 1; }
  34.     if ($name eq "rusersd" || $prog == 100002)    { $rusersd = 1; }
  35.     if ($name eq "netinfobind" || $prog == 200100001){ $netinfobind = 1; }
  36.     if ($name eq "admind" || $prog == 100087)    { $admind = 1; }
  37. }
  38. close(RPC);
  39.  
  40. if ($rexd) {
  41.     $service = "rexd"; $text = "runs rexd"; &satan_print;
  42. }
  43. if ($arm) {
  44.     $service = "arm"; $text = "runs arm"; &satan_print;
  45. }
  46. if ($bootparamd) {
  47.     $service = "bootparam"; $text = "runs bootparam"; &satan_print;
  48. }
  49. if ($ypserv) {
  50.     $service = "ypserv"; $text = "is a NIS server"; &satan_print;
  51. }
  52. if ($ypbind) {
  53.     $service = "ypbind"; $text = "is a NIS client"; &satan_print;
  54. }
  55. if ($rusersd) {
  56.     $service = "rusersd"; $text = "runs rusersd"; &satan_print;
  57. }
  58. if ($nfs) {
  59.     $service = "nfs"; $text = "runs NFS"; &satan_print;
  60. }
  61. if ($mountd) {
  62.     $service = "mountd"; $text = "runs NFS"; &satan_print;
  63. }
  64. if ($s_svc) {
  65.     $service = "selection_svc"; $text = "runs selection_svc"; &satan_print;
  66. }
  67. if ($admind) {
  68.     $service = "admind"; $text = "runs admind"; &satan_print;
  69. }
  70.  
  71. # print something out if nothing has happened so far...
  72. # if rpcinfo returns !0, then flag it; else, nothing interesting showed up.
  73. if ($text eq "") {
  74.     $severity="";
  75.     if ($?) { $text="rpcinfo error #$?"; }
  76.     else { $text="No rpcinfo output of interest"; }
  77.     &satan_print();
  78. }
  79.